StupidBeauty
Read times:457Posted at:Thu Dec 29 00:27:26 2011
- no title specified

Wt3.2.0文档翻译:Wt::WFileUpload类参考,Wt::WFileUpload Class Reference

公有成员函数

const std::vector
< Http::UploadedFile > & uploadedFiles () const 返回已上传的文件。

详细描述

这個部件用来上传一個文件。

这個部件是显示成一個方框的,其中可以输入文件名,另外还有一個浏览按钮。

取决于JavaScript 是否可用,这個部件的行为會有不同。但是其接口(API)是经过仔细设计的,在不同状态下都可以相同的方式使用。

当JavaScript 可用时,文件只會在调用upload()之后才会上传。这個调用将会启动一個异步的上传(因此會立即返回)。在文件正被上传时,如果连接库提供咯对应的支持,则当数据被接收到时會发射dataReceived()信号(参考WResource::setUploadProgress(),以了解细节)。尽管妳可以伴随着这個信号而修改图形界面,妳还是需要一個适当的机制来更新客户端的界面(使用一個WTimer或使用服务器推技术(server-push))。当文件上传完毕时,會发射uploaded()信号;或者,如果文件过大,则會发射fileTooLarge()信号。妳可以通过setProgressBar()来设置一個进度条,以用来显示上传进度。如果 JavaScript 不可用,则文件會在下次发生鼠标点击事件时上传。那样的话,upload()就没有效果--文件到那时已经上传、对应的那些信号也已经发射。要想测试upload()是否會启动一個上传过程的话,可调用canUpload()

因此,要正确地使用这個部件的话,需要按照以下规则来做:

当一個文件被接收完毕之后,WFileUpload 部件必须隐藏或者删除。另外最好像下面的例子那样阻止用户将文件上传两次。

上传的文件會被自动放入(spooled)一個本地的临时文件中,那個文件會随着WFileUpload部件一起删除,除非调用咯stealSpooledFile()

使用示例:

Wt::WFileUpload *upload = new Wt::WFileUpload(this);

upload->setFileTextSize(40);

//提供一個按钮

Wt::WPushButton *uploadButton = new Wt::WPushButton("Send", this);

//当用户单击按钮时上传。

uploadButton->clicked().connect(upload, &Wt::WFileUpload::upload);

uploadButton->clicked().connect(uploadButton, &Wt::WPushButton::disable);

//当用户输入一個文件时自动上传。

upload->changed().connect(upload, &WFileUpload::upload);

upload->changed().connect(uploadButton, &Wt::WPushButton::disable);

//对成功的上传过程作出响应。

upload->uploaded().connect(this, &MyWidget::fileUploaded);

//对上传过程中的问题作出响应。

upload->fileTooLarge().connect(this, &MyWidget::fileTooLarge);

WFileUpload是一個内联(inline )部件。

CSS

文件上传部件本身对应于一個<input type="file">标记,但也可以包装到一個<form>标记中。这個部件不提供样式设置,并且利用CSS 进行的样式设置在不同浏览器之间的兼容性较差。

成员函数文档

Signal< ::int64_t >& Wt::WFileUpload::fileTooLarge

(

)

当用户尝试上传一個过大的文件时,會发射这個信号。

参数是用户想要上传的文件的(大概)大小。

允许上传的文件的最大尺寸取决于最大请求尺寸,那個东西是在配置文件里配置的(<max-request-size>)。

参考:

uploaded()

WApplication::requestTooLarge()

void Wt::WFileUpload::setProgressBar

(

WProgressBar *

progressBar

)

设置一個进度条,以用来指示上传进度。

当文件正在上传时,會使用这里提供的进度条来指示上传进度。进度条的范围和值會在上传开始的时候设置。

如果所提供的进度条已经有一個亲代部件的话,则文件上传部件自身會在开始上传时立即隐藏。如果所提供的进度条还没有亲代部件,则它會成为文件上传部件的一部分,并且在开始上传时替换那個文件选择提示框。

默认的进度条是0(不會指示上传进度)。

参考:

dataReceived()

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4